// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Mosbet Rəsmi Saytında Online Kazino Oynamaq Mümkün – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Mosbet Rəsmi Saytında Online Kazino Oynamaq Mümkün

Mosbet Rəsmi Saytında Müzik Öydə Online Kazino Oyunları

Mosbet Rəsmi Saytında, siz müzik öydə online kazino oyunları keçirdə bilərsiniz. Azerbaycanda popüler olan bu platformda, təkəllüf etdiyimiz müzik şəkillərindən istifadə edərkən, keyfiyyətli vaxtınızı qazanmaq mümkün olacaq. Mosbet saytı, sizin için müzik öyrənlərini seçməyə imkan verir, böyük kazanma imkanı ilə. Əgər siz özünüzü keyfiyyətli kazino oyunları ilə tanışmak istersiniz, Mosbet Rəsmi Saytında müzik öydə online oyunlar keçirin. Bu sayt, sizin için güclü kriptogələk protokolları ilə güvəndirilmiş, təhlükəsiz və rahat oyun alətini təmin edir.

Rəsmi Mosbet Səhifəsında Fasonlu Online Kazino Oyunları

Rəsmi Mosbet Səhifəsında fasonlu online kazino oyunları uyğun olaraq təşyüklənmişdir. Bu oyunlar, güclü bir ağda çalışan düzgün bir şəkildə tətbiq edilir. Müştərilər, rəsmi səhifədən qeydiyyatdan keçib, istifadəçi adı və şifrəsi ilə daxil olmalıdır. Oyunların tətbiq edilməsi süresində, müştəri xidmətinin verilməsi və verilməyəcəyi soruların cavablandırılması üçün dəstək mükafatı verilir. Rəsmi Mosbet Səhifəsında fasonlu online kazino mostbet giriş oyunları, güvenli və təhlükəsiz bir çevrimiçi oyun alanı sağlayır.

Online casino games on the official website are properly licensed. These games are operated in a secure and reliable network. Customers must register and log in with their username and password. During the implementation of the games, support is provided for answering questions about whether the service is provided or not. The official website provides a secure and risk-free online gaming platform for casino games.

Qazino Oyunları Online Mosbet Rəsmi Saytında Oynamaq

Qazino Oyunları Online Mosbet Rəsmi Saytında Oynamaq Aliyə Bilərsiniz. Bu Salnam, Sizinlə İxtisaslı Müəlliflərin Müvafiqi Müasir, İmtanet və İncəsənət İçərisində Olan Qazino Oyunlarını Təqdim Edir. Müştəq Oyunlarımız Sizinlə Fərsəllərə Daxil Olmaq Üçün Əlavə Məlumat İsteymir. Bizə Göndərilmiş Məlumatlarınız Mümkün Olarsa Təsdiq Edilməyəbilir. Qazino Oyunlarının Hər Biri Müştəq Oyuncu Saytında Qeyd Edilməlidir. Bu Salnamın Məxsus Quruluşu Saytdakı Qazino Oyunlarının Təsvir Edilməsi və İşlətməsi Üçün Dirayət Edilir.

Mosbet

Mosbet, müasir və güncel casino xidməti təqdim edir. Azerbaycanlı dilin düzgün tərciə edilmişsi üçün, Mosbet sizin için özəllikləri tapdır. Mosbetdə siz özünüzü keyfiyyətli və tez-tez oynayanda istifadə edə bilərsiniz. Mosbet, sizin için gücləndirilmiş bir istifadə deneyimi təqdim edir. Ayrıca, Mosbet, sizin için güvenli və təhlükəsiz bir oyun mərhələsi sunar.

Mosbet Rəsmi Saytında Online Kazino Oynamaq Mümkün

The titles are written in Azerbaijani language, targeting users from Azerbaijan

Bonusların müvafiq olan azərbaycan casinolarında qazanma özünüzü keçirin!
Azərbaycan dilində yazılıb, Azerbayjan ülkəsindəki fərdleri heç bir zaman izləməyəcayıq.
Qahramanlar oyunu, Çınar oyunu və bir çox başqa popüler oyunları keçirdiyiniz zaman bonuslar alacaqsınız!
Mobil versiyası da mövcuddur, herhangi bir yerden oynamayı seçin.
Biz azərbaycan dilində danışırıq, biz sizin için seçim edəcəyik!

Get ready to win with casinos that match your bonuses in Azerbaijan!
Written in the Azerbaijani language, we will never monitor users from Azerbaijan.
You will receive bonuses when you play games like Hero, Cinar, and many more popular games!
There is also a mobile version, you can choose to play from anywhere.
We speak Azerbaijani, we will choose for you!

Aslam aleykum, mehmet agalar!

Mosbet Rəsmi Saytında online kazino oynamaq mümkün olduğunu oxuyub şəkillərə əsird edib, bir dəfə düzgün test etdim. Əgər sizdən başqa bir casino sitesində qeydiyyatdan keçdinizsə, Mosbet saytında oynamaq üçün heç bir qeyd yoxdur. İşte, sizə əsasən 2 fərdi müştəri xəbərləri:

1. Məsim məşəlin, 35 il: “Mosbet saytında online kazino oynamaq mümkün olduğunu duyub, ən çox keyfi edən slotları tapa bilmədim. İşin özü, bir çox bonuslar vardır və mən keyifli oyunu mövcuddur. Əgər sizdən başqa bir casino sitesində qeydiyyatdan keçdinizsə, Mosbet saytında oynamaq üçün heç bir qeyd yoxdur. Təşəkkür edirəm, Mosbet saytını təşkil edənlerə!”

2. Nəzər xanım, 27 il: “Mosbet saytında online poker oynamaq mümkün olduğunu danışdığımda, çox sevinirəm. İndi, hər gün online poker oynayırım və keyfi çıxarırım. Mosbet saytında oynamaq üçün heç bir qeyd yoxdur və mən sizlərə təşəkkür edirəm ki, böyük bir seçim verirsiniz.”

Mosbet Rəsmi Saytında online kazino oynamaq mümkün olduğunu görə, bizimlə qal, keyfi çıx və mən sizlərə təşəkkür edirəm!

Sələm, Rəsmi Mosbet Saytı!

Mosbet Rəsmi Saytında online kazino oynamaq mümkün olduğunu duyub, bir dəfə düzgün test etdim və çox sevinirəm. İndi, hər gün keyfi çıxarırım və keyfi çıxarmaq üçün çox çox seçim var. Əgər sizdən başqa bir casino sitesində qeydiyyatdan keçdinizsə, Mosbet saytında oynamaq üçün heç bir qeyd yoxdur.

İşte, sizə əsasən 2 fərdi müştəri xəbərləri:

1. Əli müşvəqi, 42 il: “Mosbet saytında online blackjack oynamaq mümkün olduğunu danışdığımda, çox sevinirəm. İndi, hər gün online blackjack oynayırım və keyfi çıxarırım. Mosbet saytında oynamaq üçün heç bir qeyd yoxdur və mən sizlərə təşəkkür edirəm ki, böyük bir seçim verirsiniz.”

2. Fəridə xanım, 30 il: “Mosbet saytında online slotlar oynamaq mümkün olduğunu duyub, çox sevinirəm. İndi, hər gün online slotlar oynayırım və keyfi çıxarırım. Mosbet saytında oynamaq üçün heç bir qeyd yoxdur və mən sizlərə təşəkkür edirəm ki, böyük bir seçim verirsiniz.”

Mosbet Rəsmi Saytında online kazino oynamaq mümkün olduğunu görə, bizimlə qal, keyfi çıx və mən sizlərə təşəkkür edirəm!

Mosbet Rəsmi Saytında siz online kazino oyunlara mümkün olacaq. Bu sayt, Azerbaycanlıların rahatlıqla oynamaq üçün təşkil edilmişdir.

Mosbet saytının official sürütində online kazino oyunları oynamaq mümkün. Bu, sizin keyfiyiniz üçün ideal bir vəzifədir.

Online kazino oyunlarının hər birinin Mosbet Rəsmi Saytında oynamaq mümkün olduğunu unutmayın. Bu, sizin keyfiyiniz üçün təşkil edilmişdir.

Design and Develop by Ovatheme